package cn.edu.zut.score.service;

import cn.edu.zut.score.core.domain.PageResponse;
import cn.edu.zut.score.core.domain.RestResponse;
import cn.edu.zut.score.core.dto.request.GroupAddRequest;
import cn.edu.zut.score.core.dto.request.GroupPageRequest;
import cn.edu.zut.score.core.dto.response.GroupResponse;
import cn.edu.zut.score.core.entity.Group;
import cn.edu.zut.score.core.entity.Info;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author zby
 * @since 2021-06-25
 */
public interface IGroupService extends IService<Group> {

    RestResponse<GroupResponse> saveGroup(GroupAddRequest groupAddRequest);

    RestResponse<GroupResponse> removeGroupNumber(GroupAddRequest groupAddRequest);

    RestResponse<Long> removeGroup(Long groupid);

    RestResponse<Integer> removeGroupsById(List<Long> allGroupIds);

    RestResponse<GroupResponse> getGroupById(Long groupid);

    List<Info> getGroupsByIds(List<Long> ids);

    RestResponse<PageResponse<GroupResponse>> getGroups(GroupPageRequest groupPageRequest);

    RestResponse<List<Info>> queryAllGroups();
}
